home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Periodicals / develop / develop 3 code / Surf's Up! / Interfaces / CIncludes / FTIntf.h < prev    next >
Encoding:
Text File  |  1989-11-17  |  4.1 KB  |  175 lines  |  [TEXT/MPS ]

  1. //
  2. //    FTIntf.h
  3. //    C Interface to the File Transfer Manager
  4.     
  5. //    Copyright © Apple Computer, Inc. 1988, 1989
  6. //    All rights reserved
  7. //
  8.  
  9. #ifndef __FTINTF__
  10. #define __FTINTF__
  11.  
  12. #ifndef __PACKAGES__
  13. #include <Packages.h>
  14. #endif
  15.  
  16. #ifndef __CTBUTILS__
  17. #include <CTBUtils.h>
  18. #endif
  19.  
  20. // current file transfer manager version
  21. #define        curFTVersion        1
  22.  
  23. // FTErr
  24. typedef    OSErr FTErr;
  25.  
  26. #define        ftGenericError        -1
  27. #define        ftNoErr                0
  28. #define     ftRejected            1
  29. #define     ftFailed            2
  30. #define     ftTimeOut            3
  31. #define        ftTooManyRetry        4
  32. #define        ftNotEnoughDSpace    5
  33. #define        ftRemoteCancel        6
  34. #define        ftWrongFormat        7
  35. #define        ftNoTools            8    
  36. #define        ftUserCancel        9
  37. #define     ftNotSupported         10
  38.  
  39. // FTDirection 
  40. typedef short FTDirection;
  41.  
  42. enum {
  43.     ftReceiving,
  44.     ftTransmitting,
  45.     ftFullDuplex
  46. };
  47.  
  48. // FTFlags
  49. typedef unsigned long FTFlags;
  50.  
  51. enum {
  52.     ftIsFTMode = 1 << 0,
  53.     ftNoMenus = 1 << 1,
  54.     ftQuiet = 1 << 3,
  55.     ftSucc = 1 << 7
  56. };
  57.  
  58. // FTAttributes
  59. typedef short FTAttributes;
  60. enum {
  61.     ftSameCircuit = 1 << 0,
  62.     ftSendDisable = 1 << 1,
  63.     ftReceiveDisable = 1 << 2,
  64.     ftTextOnly = 1 << 3,
  65. };
  66.  
  67. struct FTRecord
  68. {    
  69.     short            procID;
  70.  
  71.     FTFlags            flags;
  72.     FTErr            errCode;
  73.  
  74.     long            refCon;
  75.     long            userData;
  76.  
  77.     ProcPtr            defProc;
  78.  
  79.       Ptr                config;
  80.       Ptr                oldConfig;
  81.  
  82.     ProcPtr            environsProc;
  83.     long            reserved1;
  84.     long            reserved2;
  85.         
  86.     Ptr                ftPrivate;
  87.  
  88.      ProcPtr            sendProc;
  89.       ProcPtr            recvProc;
  90.     ProcPtr            writeProc;
  91.     ProcPtr            readProc;
  92.  
  93.      WindowPtr        owner;
  94.     
  95.     FTDirection        direction;
  96.       SFReply            theReply;
  97.  
  98.       long              writePtr;
  99.       long              readPtr;
  100.       char              *theBuf;
  101.     long            bufSize;
  102.     Str255            autoRec;
  103.     FTAttributes    attributes;
  104. };
  105.  
  106. #ifndef _cplusplus
  107. typedef struct FTRecord FTRecord;
  108. #endif
  109.  
  110. typedef FTRecord  *FTPtr, **FTHandle;
  111.      
  112.      
  113. #ifdef __safe_link
  114. extern "C" {
  115. #endif        
  116. extern pascal FTErr     InitFT(void);
  117. extern pascal Handle     FTGetVersion(FTHandle hFT);
  118. extern pascal short     FTGetFTVersion(void);
  119.     
  120. extern pascal FTHandle     FTNew(short procID, FTFlags flags, ProcPtr sendProc, 
  121.                             ProcPtr recvProc, ProcPtr readProc, ProcPtr writeProc, 
  122.                             ProcPtr environsProc, WindowPtr owner, long refCon, 
  123.                             long userData);
  124.  
  125. extern pascal void         FTDispose(FTHandle hFT);
  126.  
  127. extern pascal FTErr     FTStart(FTHandle hFT, FTDirection direction, const SFReply *fileInfo);
  128. extern pascal FTErr     FTAbort(FTHandle hFT);
  129.  
  130. extern pascal void         FTExec(FTHandle hFT);
  131.  
  132. extern pascal void         FTActivate(FTHandle hFT, Boolean activate);
  133. extern pascal void         FTResume(FTHandle hFT, Boolean resume);
  134. extern pascal Boolean     FTMenu(FTHandle hFT, short menuID, short item);
  135.  
  136. extern pascal short     FTChoose(FTHandle *hFT, Point where, ProcPtr idleProc);
  137. extern pascal void         FTEvent(FTHandle hFT, const EventRecord *theEvent);
  138.  
  139. extern pascal Boolean     FTValidate(FTHandle hFT); 
  140. extern pascal void         FTDefault(Ptr *theConfig, short procID, Boolean allocate);
  141.  
  142. extern pascal Handle     FTSetupPreflight(short procID, long *magicCookie);
  143. extern pascal void         FTSetupSetup(short procID, Ptr theConfig, short count, 
  144.                             DialogPtr theDialog, long *magicCookie);
  145. extern pascal Boolean     FTSetupFilter(short procID, Ptr theConfig, short count, 
  146.                             DialogPtr theDialog, EventRecord *theEvent, 
  147.                             short *theItem, long *magicCookie);
  148. extern pascal void        FTSetupItem(short procID, Ptr theConfig, short count, 
  149.                             DialogPtr theDialog, short *theItem, long *magicCookie);
  150. extern pascal void         FTSetupCleanup(short procID, Ptr theConfig, short count, 
  151.                             DialogPtr theDialog, long *magicCookie);
  152. extern pascal void         FTSetupPostflight(short procID);
  153.  
  154. extern pascal Ptr         FTGetConfig(FTHandle hFT); 
  155. extern pascal short     FTSetConfig(FTHandle hFT, Ptr thePtr);
  156.  
  157. extern pascal OSErr     FTIntlToEnglish(FTHandle hFT, Ptr inputPtr, Ptr *outputPtr, 
  158.                             short language);
  159. extern pascal OSErr     FTEnglishToIntl(FTHandle hFT, Ptr inputPtr, Ptr *outputPtr, 
  160.                             short language);
  161.     
  162. extern pascal void         FTSetRefCon(FTHandle hFT, long refCon);
  163. extern pascal long         FTGetRefCon(FTHandle hFT);
  164.  
  165. extern pascal void         FTSetUserData(FTHandle hFT, long userData);
  166. extern pascal long         FTGetUserData(FTHandle hFT);
  167.  
  168. extern pascal void         FTGetToolName(short procID, Str255 name);
  169. extern pascal short      FTGetProcID(const Str255 name);
  170.  
  171. #ifdef __safe_link
  172. }
  173. #endif    
  174.  
  175. #endif __FTINTF__